我們在一般的web上,如果我們要使用網站上的功能一班都要先註冊一組帳號密碼,在這個案例中我們在View其實只需要一個form表單填入帳號密碼就可以了,那我們可以先來構建Controller中的程式邏輯:
前往註冊頁面->輸入帳號密碼->與資料庫連接->檢查資料庫中是否有這組帳號->若沒有則在資料庫中寫入這組帳號密碼
View
@{
ViewBag.Title = "Register";
}
<h2>Register</h2>
<form action="@Url.Action("Doregister", "Home")" method="post">
<div class="form-group">
<label for="Account">Account</label>
<!--帳號輸入框-->
<input type="text" class="form-control" id="Account" name="Account" placeholder="Enter your account" required />
</div>
<!--密碼輸入框-->
<div class="form-group">
<label for="Password">Password</label>
<input type="password" class="form-control" id="Password" name="Password" placeholder="Enter your password" required />
</div>
<button type="submit" class="btn btn-primary">Register</button>
</form>
<div style="color: red; margin-top: 10px;">@TempData["Errmsg"]</div>
</div>
Controller
//需要兩個參數:帳號、密碼
public ActionResult Doregister(string Account,string Password)
{
//資料庫連接字串
string connstr = "Data Source=CSIE-TEST2;Initial Catalog=Student_data;User ID=TEST03;Password=1qaz@WSX;Encrypt=False";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
//抓取帳號欄位,條件設置為如果有某筆資料的帳號=輸入的帳號
SqlCommand cmd = new SqlCommand("select Account from Login where Account=@Account");
cmd.Connection = conn;
cmd.Parameters.AddWithValue("@Account", Account);
SqlDataAdapter adpt = new SqlDataAdapter();
DataSet ds = new DataSet();
adpt.SelectCommand = cmd;
adpt.Fill(ds);
//如果有有資料則代表帳號有人使用過了
if (ds.Tables[0].Rows.Count > 0)
{
TempData["Errmsg"] = "帳號已存在";
return RedirectToAction("Register");
}
//若沒有則創建這組帳號密碼
else
{
//在資料庫中INSERT這組帳號密碼
SqlCommand ins = new SqlCommand("INSERT INTO Login (Account, Password) VALUES (@Account, @Password)");
ins.Parameters.AddWithValue("@Account", Account);
ins.Parameters.AddWithValue("@Password",Password);
ins.Connection = conn;
ins.ExecuteNonQuery();
}
return RedirectToAction("login");
}
總結:在註冊案例中其實有很多種寫法,但主要看要怎麼設計之後決定怎麼寫,再次案例中屬於比較簡單的演示,也可以自行改編成先輸入帳號查詢,若沒有註冊過再輸入密碼等寫法,不同的設計寫法都不相同,單基礎的語法與手法都相同。